package com.cande.bytebuffer;

import java.nio.ByteBuffer;

public class ByteBufferTest {
    public static void main(String[] args) {
        //测试slice
//        ByteBuffer buffer = ByteBuffer.allocate(10);
//        buffer.put((byte) 1);
//        buffer.put((byte) 2);
//        buffer.flip();
//
//        ByteBuffer slice = buffer.slice();
//        slice.put((byte) 3);
//        slice.put((byte) 4);
//        System.out.println(slice);

        //duplicate
        ByteBuffer original = ByteBuffer.allocate(10);
        original.put( (byte) 1);
        ByteBuffer duplicate = original.duplicate();

        duplicate.put(1, (byte) 2);
        System.out.println(original.get(0)); // 输出 1
        System.out.println(original.get(1)); // 输出 2



        ByteBuffer buffer = ByteBuffer.allocate(10);

// 写数据
        buffer.put((byte) 1);
        buffer.put((byte) 2);
        buffer.flip();

// 读取部分数据
        for (int i = 0; i < 1; i++) {

            System.out.println(buffer.get());
        }

// 切换到写模式，保留未读的数据
        buffer.compact();

// 继续写入数据
        buffer.put((byte) 3);
        buffer.put((byte) 4);
    }
}
